home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1993 July / InfoMagic USENET CD-ROM July 1993.ISO / sources / x / volume10 / contool / part06 < prev    next >
Encoding:
Internet Message Format  |  1990-10-29  |  43.6 KB

  1. Path: uunet!jarthur!usc!cs.utexas.edu!sun-barr!newstop!sun!melmac.harris-atd.com
  2. From: chuck@melmac.harris-atd.com (Chuck Musciano)
  3. Newsgroups: comp.sources.x
  4. Subject: v10i039: contool -- replacement for 'cmdtool -C', Part06/06
  5. Message-ID: <144347@sun.Eng.Sun.COM>
  6. Date: 30 Oct 90 06:27:11 GMT
  7. References: <csx-10i034:contool@uunet.UU.NET>
  8. Sender: news@sun.Eng.Sun.COM
  9. Lines: 1945
  10. Approved: argv@sun.com
  11.  
  12. Submitted-by: chuck@melmac.harris-atd.com (Chuck Musciano)
  13. Posting-number: Volume 10, Issue 39
  14. Archive-name: contool/part06
  15.  
  16. #! /bin/sh
  17. # This is a shell archive.  Remove anything before this line, then unpack
  18. # it by saving it into a file and typing "sh file".  To overwrite existing
  19. # files, type "sh file -c".  You can also feed this as standard input via
  20. # unshar, or by typing "sh <file", e.g..  If this archive is complete, you
  21. # will see the following message at the end:
  22. #        "End of archive 6 (of 6)."
  23. # Contents:  contool_ui.c
  24. # Wrapped by chuck@melmac on Fri Aug 17 10:00:54 1990
  25. PATH=/bin:/usr/bin:/usr/ucb ; export PATH
  26. if test -f 'contool_ui.c' -a "${1}" != "-c" ; then 
  27.   echo shar: Will not clobber existing file \"'contool_ui.c'\"
  28. else
  29. echo shar: Extracting \"'contool_ui.c'\" \(40450 characters\)
  30. sed "s/^X//" >'contool_ui.c' <<'END_OF_FILE'
  31. X/*
  32. X * contool_ui.c - User interface object initialization functions.
  33. X * This file was generated by `gxv' from `contool.G'.
  34. X * DO NOT EDIT BY HAND.
  35. X */
  36. X
  37. X#include <stdio.h>
  38. X#include <sys/param.h>
  39. X#include <sys/types.h>
  40. X#include <xview/xview.h>
  41. X#include <xview/canvas.h>
  42. X#include <xview/icon_load.h>
  43. X#include <xview/panel.h>
  44. X#include <xview/scrollbar.h>
  45. X#include <xview/svrimage.h>
  46. X#include <xview/termsw.h>
  47. X#include <xview/text.h>
  48. X#include <xview/tty.h>
  49. X#include <xview/xv_xrect.h>
  50. X#include "contool_ui.h"
  51. X
  52. X/*
  53. X * Create object `file_menu' in the specified instance.
  54. X
  55. X */
  56. XXv_opaque
  57. Xcontool_file_menu_create(ip, owner)
  58. X    caddr_t        *ip;
  59. X    Xv_opaque    owner;
  60. X{
  61. X    extern Menu_item    popup_load_config();
  62. X    extern Menu_item    popup_save_config();
  63. X    extern Menu_item    start_logging();
  64. X    extern Menu_item    stop_logging();
  65. X    extern Menu_item    print_messages();
  66. X    Xv_opaque    obj;
  67. X    
  68. X    obj = xv_create(XV_NULL, MENU_COMMAND_MENU,
  69. X        XV_KEY_DATA, INSTANCE, ip,
  70. X        MENU_ITEM,
  71. X            XV_KEY_DATA, INSTANCE, ip,
  72. X            MENU_STRING, "Load Configuration...",
  73. X            MENU_GEN_PROC, popup_load_config,
  74. X            NULL,
  75. X        MENU_ITEM,
  76. X            XV_KEY_DATA, INSTANCE, ip,
  77. X            MENU_STRING, "Save Configuration...",
  78. X            MENU_GEN_PROC, popup_save_config,
  79. X            NULL,
  80. X        MENU_ITEM,
  81. X            XV_KEY_DATA, INSTANCE, ip,
  82. X            MENU_STRING, "Start Logging",
  83. X            MENU_GEN_PROC, start_logging,
  84. X            NULL,
  85. X        MENU_ITEM,
  86. X            XV_KEY_DATA, INSTANCE, ip,
  87. X            MENU_STRING, "Stop Logging",
  88. X            MENU_GEN_PROC, stop_logging,
  89. X            NULL,
  90. X        MENU_ITEM,
  91. X            XV_KEY_DATA, INSTANCE, ip,
  92. X            MENU_STRING, "Print",
  93. X            MENU_GEN_PROC, print_messages,
  94. X            NULL,
  95. X        MENU_DEFAULT, 2,
  96. X        MENU_GEN_PIN_WINDOW, (Xv_opaque) ip[0], "File",
  97. X        NULL);
  98. X    return obj;
  99. X}
  100. X
  101. X/*
  102. X * Create object `view_menu' in the specified instance.
  103. X
  104. X */
  105. XXv_opaque
  106. Xcontool_view_menu_create(ip, owner)
  107. X    caddr_t        *ip;
  108. X    Xv_opaque    owner;
  109. X{
  110. X    extern Menu_item    become_console();
  111. X    extern Menu_item    clear_messages();
  112. X    extern Menu_item    reset_filter();
  113. X    Xv_opaque    obj;
  114. X    
  115. X    obj = xv_create(XV_NULL, MENU_COMMAND_MENU,
  116. X        XV_KEY_DATA, INSTANCE, ip,
  117. X        MENU_ITEM,
  118. X            XV_KEY_DATA, INSTANCE, ip,
  119. X            MENU_STRING, "Become Console",
  120. X            MENU_GEN_PROC, become_console,
  121. X            NULL,
  122. X        MENU_ITEM,
  123. X            XV_KEY_DATA, INSTANCE, ip,
  124. X            MENU_STRING, "Clear Messages",
  125. X            MENU_GEN_PROC, clear_messages,
  126. X            NULL,
  127. X        MENU_ITEM,
  128. X            XV_KEY_DATA, INSTANCE, ip,
  129. X            MENU_STRING, "Reset Filter",
  130. X            MENU_GEN_PROC, reset_filter,
  131. X            NULL,
  132. X        MENU_DEFAULT, 2,
  133. X        MENU_GEN_PIN_WINDOW, (Xv_opaque) ip[0], "View",
  134. X        NULL);
  135. X    return obj;
  136. X}
  137. X
  138. X/*
  139. X * Create object `edit_menu' in the specified instance.
  140. X
  141. X */
  142. XXv_opaque
  143. Xcontool_edit_menu_create(ip, owner)
  144. X    caddr_t        *ip;
  145. X    Xv_opaque    owner;
  146. X{
  147. X    extern Menu_item    edit_filters();
  148. X    extern Menu_item    edit_properties();
  149. X    Xv_opaque    obj;
  150. X    
  151. X    obj = xv_create(XV_NULL, MENU_COMMAND_MENU,
  152. X        XV_KEY_DATA, INSTANCE, ip,
  153. X        MENU_ITEM,
  154. X            XV_KEY_DATA, INSTANCE, ip,
  155. X            MENU_STRING, "Filters...",
  156. X            MENU_GEN_PROC, edit_filters,
  157. X            NULL,
  158. X        MENU_ITEM,
  159. X            XV_KEY_DATA, INSTANCE, ip,
  160. X            MENU_STRING, "Properties...",
  161. X            MENU_GEN_PROC, edit_properties,
  162. X            NULL,
  163. X        MENU_DEFAULT, 2,
  164. X        MENU_GEN_PIN_WINDOW, (Xv_opaque) ip[0], "Edit",
  165. X        NULL);
  166. X    return obj;
  167. X}
  168. X
  169. X/*
  170. X * Create object `filter_insert_menu' in the specified instance.
  171. X
  172. X */
  173. XXv_opaque
  174. Xcontool_filter_insert_menu_create(ip, owner)
  175. X    caddr_t        *ip;
  176. X    Xv_opaque    owner;
  177. X{
  178. X    extern Menu        filter_insert_handler();
  179. X    extern Menu_item    insert_at_top();
  180. X    extern Menu_item    insert_above();
  181. X    extern Menu_item    insert_below();
  182. X    extern Menu_item    insert_at_bottom();
  183. X    Xv_opaque    obj;
  184. X    
  185. X    obj = xv_create(XV_NULL, MENU_COMMAND_MENU,
  186. X        XV_KEY_DATA, INSTANCE, ip,
  187. X        MENU_GEN_PROC, filter_insert_handler,
  188. X        MENU_ITEM,
  189. X            XV_KEY_DATA, INSTANCE, ip,
  190. X            MENU_STRING, "At top",
  191. X            MENU_GEN_PROC, insert_at_top,
  192. X            NULL,
  193. X        MENU_ITEM,
  194. X            XV_KEY_DATA, INSTANCE, ip,
  195. X            MENU_STRING, "Above selection",
  196. X            MENU_GEN_PROC, insert_above,
  197. X            NULL,
  198. X        MENU_ITEM,
  199. X            XV_KEY_DATA, INSTANCE, ip,
  200. X            MENU_STRING, "Below selection",
  201. X            MENU_GEN_PROC, insert_below,
  202. X            NULL,
  203. X        MENU_ITEM,
  204. X            XV_KEY_DATA, INSTANCE, ip,
  205. X            MENU_STRING, "At bottom",
  206. X            MENU_GEN_PROC, insert_at_bottom,
  207. X            NULL,
  208. X        MENU_DEFAULT, 4,
  209. X        NULL);
  210. X    return obj;
  211. X}
  212. X
  213. X/*
  214. X * Create object `filter_edit_menu' in the specified instance.
  215. X
  216. X */
  217. XXv_opaque
  218. Xcontool_filter_edit_menu_create(ip, owner)
  219. X    caddr_t        *ip;
  220. X    Xv_opaque    owner;
  221. X{
  222. X    extern Menu        filter_edit_handler();
  223. X    extern Menu_item    filter_cut();
  224. X    extern Menu_item    filter_copy();
  225. X    extern Menu_item    filter_paste();
  226. X    extern Menu_item    filter_delete();
  227. X    Xv_opaque    obj;
  228. X    
  229. X    obj = xv_create(XV_NULL, MENU_COMMAND_MENU,
  230. X        XV_KEY_DATA, INSTANCE, ip,
  231. X        MENU_GEN_PROC, filter_edit_handler,
  232. X        MENU_ITEM,
  233. X            XV_KEY_DATA, INSTANCE, ip,
  234. X            MENU_STRING, "Cut",
  235. X            MENU_GEN_PROC, filter_cut,
  236. X            NULL,
  237. X        MENU_ITEM,
  238. X            XV_KEY_DATA, INSTANCE, ip,
  239. X            MENU_STRING, "Copy",
  240. X            MENU_GEN_PROC, filter_copy,
  241. X            NULL,
  242. X        MENU_ITEM,
  243. X            XV_KEY_DATA, INSTANCE, ip,
  244. X            MENU_STRING, "Paste",
  245. X            MENU_GEN_PROC, filter_paste,
  246. X            MENU_PULLRIGHT, contool_filter_paste_menu_create(ip, NULL),
  247. X            NULL,
  248. X        MENU_ITEM,
  249. X            XV_KEY_DATA, INSTANCE, ip,
  250. X            MENU_STRING, "Delete",
  251. X            MENU_GEN_PROC, filter_delete,
  252. X            NULL,
  253. X        MENU_DEFAULT, 1,
  254. X        NULL);
  255. X    return obj;
  256. X}
  257. X
  258. X/*
  259. X * Create object `filter_paste_menu' in the specified instance.
  260. X
  261. X */
  262. XXv_opaque
  263. Xcontool_filter_paste_menu_create(ip, owner)
  264. X    caddr_t        *ip;
  265. X    Xv_opaque    owner;
  266. X{
  267. X    extern Menu_item    paste_at_top();
  268. X    extern Menu_item    paste_above();
  269. X    extern Menu_item    paste_below();
  270. X    extern Menu_item    paste_at_bottom();
  271. X    Xv_opaque    obj;
  272. X    
  273. X    obj = xv_create(XV_NULL, MENU_COMMAND_MENU,
  274. X        XV_KEY_DATA, INSTANCE, ip,
  275. X        MENU_ITEM,
  276. X            XV_KEY_DATA, INSTANCE, ip,
  277. X            MENU_STRING, "At top",
  278. X            MENU_GEN_PROC, paste_at_top,
  279. X            NULL,
  280. X        MENU_ITEM,
  281. X            XV_KEY_DATA, INSTANCE, ip,
  282. X            MENU_STRING, "Above selection",
  283. X            MENU_GEN_PROC, paste_above,
  284. X            NULL,
  285. X        MENU_ITEM,
  286. X            XV_KEY_DATA, INSTANCE, ip,
  287. X            MENU_STRING, "Below selection",
  288. X            MENU_GEN_PROC, paste_below,
  289. X            NULL,
  290. X        MENU_ITEM,
  291. X            XV_KEY_DATA, INSTANCE, ip,
  292. X            MENU_STRING, "At bottom",
  293. X            MENU_GEN_PROC, paste_at_bottom,
  294. X            NULL,
  295. X        MENU_DEFAULT, 4,
  296. X        NULL);
  297. X    return obj;
  298. X}
  299. X
  300. X/*
  301. X * Initialize an instance of object `base'.
  302. X */
  303. Xcontool_base_objects *
  304. Xcontool_base_objects_initialize(ip, owner)
  305. X    contool_base_objects    *ip;
  306. X    Xv_opaque    owner;
  307. X{
  308. X    if (!ip && !(ip = (contool_base_objects *) calloc(1, sizeof (contool_base_objects))))
  309. X        return (contool_base_objects *) NULL;
  310. X    if (!ip->base)
  311. X        ip->base = contool_base_base_create(ip, owner);
  312. X    if (!ip->contool_controls)
  313. X        ip->contool_controls = contool_base_contool_controls_create(ip, ip->base);
  314. X    if (!ip->file)
  315. X        ip->file = contool_base_file_create(ip, ip->contool_controls);
  316. X    if (!ip->view)
  317. X        ip->view = contool_base_view_create(ip, ip->contool_controls);
  318. X    if (!ip->edit)
  319. X        ip->edit = contool_base_edit_create(ip, ip->contool_controls);
  320. X    if (!ip->display)
  321. X        ip->display = contool_base_display_create(ip, ip->base);
  322. X    return ip;
  323. X}
  324. X
  325. X/*
  326. X * Create object `base' in the specified instance.
  327. X
  328. X */
  329. XXv_opaque
  330. Xcontool_base_base_create(ip, owner)
  331. X    caddr_t        ip;
  332. X    Xv_opaque    owner;
  333. X{
  334. X    Xv_opaque    obj;
  335. X    
  336. X    obj = xv_create(owner, FRAME,
  337. X        XV_KEY_DATA, INSTANCE, ip,
  338. X        XV_WIDTH, 575,
  339. X        XV_HEIGHT, 246,
  340. X        XV_LABEL, "Contool 3.0",
  341. X        FRAME_CLOSED, FALSE,
  342. X        FRAME_SHOW_FOOTER, TRUE,
  343. X        FRAME_SHOW_RESIZE_CORNER, TRUE,
  344. X        NULL);
  345. X    return obj;
  346. X}
  347. X
  348. X/*
  349. X * Create object `contool_controls' in the specified instance.
  350. X
  351. X */
  352. XXv_opaque
  353. Xcontool_base_contool_controls_create(ip, owner)
  354. X    caddr_t        ip;
  355. X    Xv_opaque    owner;
  356. X{
  357. X    Xv_opaque    obj;
  358. X    
  359. X    obj = xv_create(owner, PANEL,
  360. X        XV_KEY_DATA, INSTANCE, ip,
  361. X        XV_HELP_DATA, "contool:contool_controls",
  362. X        XV_X, 0,
  363. X        XV_Y, 0,
  364. X        XV_WIDTH, WIN_EXTEND_TO_EDGE,
  365. X        XV_HEIGHT, 32,
  366. X        WIN_BORDER, FALSE,
  367. X        NULL);
  368. X    return obj;
  369. X}
  370. X
  371. X/*
  372. X * Create object `file' in the specified instance.
  373. X
  374. X */
  375. XXv_opaque
  376. Xcontool_base_file_create(ip, owner)
  377. X    caddr_t        ip;
  378. X    Xv_opaque    owner;
  379. X{
  380. X    Xv_opaque    obj;
  381. X    
  382. X    obj = xv_create(owner, PANEL_BUTTON,
  383. X        XV_KEY_DATA, INSTANCE, ip,
  384. X        XV_HELP_DATA, "contool:file",
  385. X        XV_X, 4,
  386. X        XV_Y, 4,
  387. X        XV_WIDTH, 54,
  388. X        XV_HEIGHT, 20,
  389. X        PANEL_LABEL_STRING, "File",
  390. X        PANEL_ITEM_MENU, contool_file_menu_create((caddr_t *) ip, NULL),
  391. X        NULL);
  392. X    return obj;
  393. X}
  394. X
  395. X/*
  396. X * Create object `view' in the specified instance.
  397. X
  398. X */
  399. XXv_opaque
  400. Xcontool_base_view_create(ip, owner)
  401. X    caddr_t        ip;
  402. X    Xv_opaque    owner;
  403. X{
  404. X    Xv_opaque    obj;
  405. X    
  406. X    obj = xv_create(owner, PANEL_BUTTON,
  407. X        XV_KEY_DATA, INSTANCE, ip,
  408. X        XV_HELP_DATA, "contool:view",
  409. X        XV_X, 67,
  410. X        XV_Y, 4,
  411. X        XV_WIDTH, 62,
  412. X        XV_HEIGHT, 20,
  413. X        PANEL_LABEL_STRING, "View",
  414. X        PANEL_ITEM_MENU, contool_view_menu_create((caddr_t *) ip, NULL),
  415. X        NULL);
  416. X    return obj;
  417. X}
  418. X
  419. X/*
  420. X * Create object `edit' in the specified instance.
  421. X
  422. X */
  423. XXv_opaque
  424. Xcontool_base_edit_create(ip, owner)
  425. X    caddr_t        ip;
  426. X    Xv_opaque    owner;
  427. X{
  428. X    Xv_opaque    obj;
  429. X    
  430. X    obj = xv_create(owner, PANEL_BUTTON,
  431. X        XV_KEY_DATA, INSTANCE, ip,
  432. X        XV_HELP_DATA, "contool:edit",
  433. X        XV_X, 138,
  434. X        XV_Y, 4,
  435. X        XV_WIDTH, 56,
  436. X        XV_HEIGHT, 20,
  437. X        PANEL_LABEL_STRING, "Edit",
  438. X        PANEL_ITEM_MENU, contool_edit_menu_create((caddr_t *) ip, NULL),
  439. X        NULL);
  440. X    return obj;
  441. X}
  442. X
  443. X/*
  444. X * Create object `display' in the specified instance.
  445. X
  446. X */
  447. XXv_opaque
  448. Xcontool_base_display_create(ip, owner)
  449. X    caddr_t        ip;
  450. X    Xv_opaque    owner;
  451. X{
  452. X    Xv_opaque    obj;
  453. X    
  454. X    obj = xv_create(owner, TEXTSW,
  455. X        XV_KEY_DATA, INSTANCE, ip,
  456. X        XV_HELP_DATA, "contool:display",
  457. X        XV_X, 0,
  458. X        XV_Y, 27,
  459. X        XV_WIDTH, WIN_EXTEND_TO_EDGE,
  460. X        XV_HEIGHT, WIN_EXTEND_TO_EDGE,
  461. X        OPENWIN_SHOW_BORDERS, TRUE,
  462. X        NULL);
  463. X    return obj;
  464. X}
  465. X
  466. X/*
  467. X * Initialize an instance of object `props'.
  468. X */
  469. Xcontool_props_objects *
  470. Xcontool_props_objects_initialize(ip, owner)
  471. X    contool_props_objects    *ip;
  472. X    Xv_opaque    owner;
  473. X{
  474. X    if (!ip && !(ip = (contool_props_objects *) calloc(1, sizeof (contool_props_objects))))
  475. X        return (contool_props_objects *) NULL;
  476. X    if (!ip->props)
  477. X        ip->props = contool_props_props_create(ip, owner);
  478. X    if (!ip->prop_controls)
  479. X        ip->prop_controls = contool_props_prop_controls_create(ip, ip->props);
  480. X    if (!ip->default_action)
  481. X        ip->default_action = contool_props_default_action_create(ip, ip->prop_controls);
  482. X    if (!ip->default_beep_count)
  483. X        ip->default_beep_count = contool_props_default_beep_count_create(ip, ip->prop_controls);
  484. X    if (!ip->default_beep_times)
  485. X        ip->default_beep_times = contool_props_default_beep_times_create(ip, ip->prop_controls);
  486. X    if (!ip->default_command)
  487. X        ip->default_command = contool_props_default_command_create(ip, ip->prop_controls);
  488. X    if (!ip->log_file)
  489. X        ip->log_file = contool_props_log_file_create(ip, ip->prop_controls);
  490. X    if (!ip->log_style)
  491. X        ip->log_style = contool_props_log_style_create(ip, ip->prop_controls);
  492. X    if (!ip->print_filter)
  493. X        ip->print_filter = contool_props_print_filter_create(ip, ip->prop_controls);
  494. X    if (!ip->good_icon)
  495. X        ip->good_icon = contool_props_good_icon_create(ip, ip->prop_controls);
  496. X    if (!ip->bad_icon)
  497. X        ip->bad_icon = contool_props_bad_icon_create(ip, ip->prop_controls);
  498. X    if (!ip->flash_icon)
  499. X        ip->flash_icon = contool_props_flash_icon_create(ip, ip->prop_controls);
  500. X    if (!ip->stamp_resolution)
  501. X        ip->stamp_resolution = contool_props_stamp_resolution_create(ip, ip->prop_controls);
  502. X    if (!ip->message2)
  503. X        ip->message2 = contool_props_message2_create(ip, ip->prop_controls);
  504. X    if (!ip->max_message)
  505. X        ip->max_message = contool_props_max_message_create(ip, ip->prop_controls);
  506. X    if (!ip->message3)
  507. X        ip->message3 = contool_props_message3_create(ip, ip->prop_controls);
  508. X    if (!ip->delete_amount)
  509. X        ip->delete_amount = contool_props_delete_amount_create(ip, ip->prop_controls);
  510. X    if (!ip->message4)
  511. X        ip->message4 = contool_props_message4_create(ip, ip->prop_controls);
  512. X    if (!ip->props_apply)
  513. X        ip->props_apply = contool_props_props_apply_create(ip, ip->prop_controls);
  514. X    if (!ip->props_reset)
  515. X        ip->props_reset = contool_props_props_reset_create(ip, ip->prop_controls);
  516. X    return ip;
  517. X}
  518. X
  519. X/*
  520. X * Create object `props' in the specified instance.
  521. X
  522. X */
  523. XXv_opaque
  524. Xcontool_props_props_create(ip, owner)
  525. X    caddr_t        ip;
  526. X    Xv_opaque    owner;
  527. X{
  528. X    Xv_opaque    obj;
  529. X    
  530. X    obj = xv_create(owner, FRAME_CMD,
  531. X        XV_KEY_DATA, INSTANCE, ip,
  532. X        XV_WIDTH, 500,
  533. X        XV_HEIGHT, 479,
  534. X        XV_LABEL, "Contool: Properties",
  535. X        XV_SHOW, FALSE,
  536. X        FRAME_SHOW_FOOTER, FALSE,
  537. X        FRAME_SHOW_RESIZE_CORNER, FALSE,
  538. X        FRAME_CMD_PUSHPIN_IN, FALSE,
  539. X        NULL);
  540. X    xv_set(xv_get(obj, FRAME_CMD_PANEL), WIN_SHOW, FALSE, NULL);
  541. X    return obj;
  542. X}
  543. X
  544. X/*
  545. X * Create object `prop_controls' in the specified instance.
  546. X
  547. X */
  548. XXv_opaque
  549. Xcontool_props_prop_controls_create(ip, owner)
  550. X    caddr_t        ip;
  551. X    Xv_opaque    owner;
  552. X{
  553. X    Xv_opaque    obj;
  554. X    
  555. X    obj = xv_create(owner, PANEL,
  556. X        XV_KEY_DATA, INSTANCE, ip,
  557. X        XV_HELP_DATA, "contool:prop_controls",
  558. X        XV_X, 0,
  559. X        XV_Y, 0,
  560. X        XV_WIDTH, WIN_EXTEND_TO_EDGE,
  561. X        XV_HEIGHT, WIN_EXTEND_TO_EDGE,
  562. X        WIN_BORDER, FALSE,
  563. X        NULL);
  564. X    return obj;
  565. X}
  566. X
  567. X/*
  568. X * Create object `default_action' in the specified instance.
  569. X
  570. X */
  571. XXv_opaque
  572. Xcontool_props_default_action_create(ip, owner)
  573. X    caddr_t        ip;
  574. X    Xv_opaque    owner;
  575. X{
  576. X    extern int        default_action();
  577. X    Xv_opaque    obj;
  578. X    
  579. X    obj = xv_create(owner, PANEL_TOGGLE,
  580. X        XV_KEY_DATA, INSTANCE, ip,
  581. X        XV_HELP_DATA, "contool:default_action",
  582. X        XV_X, 96,
  583. X        XV_Y, 14,
  584. X        XV_WIDTH, 211,
  585. X        XV_HEIGHT, 139,
  586. X        PANEL_VALUE_X, 205,
  587. X        PANEL_VALUE_Y, 14,
  588. X        PANEL_LAYOUT, PANEL_HORIZONTAL,
  589. X        PANEL_CHOICE_NCOLS, 1,
  590. X        PANEL_LABEL_STRING, "Default action:",
  591. X        PANEL_NOTIFY_PROC, default_action,
  592. X        PANEL_CHOICE_STRINGS,
  593. X            "Beep",
  594. X            "Command",
  595. X            "Flash icon",
  596. X            "Open window",
  597. X            "Timestamp",
  598. X            0,
  599. X        NULL);
  600. X    return obj;
  601. X}
  602. X
  603. X/*
  604. X * Create object `default_beep_count' in the specified instance.
  605. X
  606. X */
  607. XXv_opaque
  608. Xcontool_props_default_beep_count_create(ip, owner)
  609. X    caddr_t        ip;
  610. X    Xv_opaque    owner;
  611. X{
  612. X    Xv_opaque    obj;
  613. X    
  614. X    obj = xv_create(owner, PANEL_NUMERIC_TEXT,
  615. X        XV_KEY_DATA, INSTANCE, ip,
  616. X        XV_HELP_DATA, "contool:default_beep_count",
  617. X        XV_X, 306,
  618. X        XV_Y, 19,
  619. X        XV_WIDTH, 80,
  620. X        XV_HEIGHT, 15,
  621. X        PANEL_VALUE_X, 315,
  622. X        PANEL_VALUE_Y, 19,
  623. X        PANEL_LAYOUT, PANEL_HORIZONTAL,
  624. X        PANEL_VALUE_DISPLAY_LENGTH, 2,
  625. X        PANEL_VALUE_STORED_LENGTH, 2,
  626. X        PANEL_MAX_VALUE, 99,
  627. X        PANEL_MIN_VALUE, 0,
  628. X        PANEL_READ_ONLY, FALSE,
  629. X        NULL);
  630. X    return obj;
  631. X}
  632. X
  633. X/*
  634. X * Create object `default_beep_times' in the specified instance.
  635. X
  636. X */
  637. XXv_opaque
  638. Xcontool_props_default_beep_times_create(ip, owner)
  639. X    caddr_t        ip;
  640. X    Xv_opaque    owner;
  641. X{
  642. X    Xv_opaque    obj;
  643. X    
  644. X    obj = xv_create(owner, PANEL_MESSAGE,
  645. X        XV_KEY_DATA, INSTANCE, ip,
  646. X        XV_HELP_DATA, "contool:default_beep_times",
  647. X        XV_X, 394,
  648. X        XV_Y, 19,
  649. X        XV_WIDTH, 34,
  650. X        XV_HEIGHT, 13,
  651. X        PANEL_LABEL_STRING, "times",
  652. X        PANEL_LABEL_BOLD, FALSE,
  653. X        NULL);
  654. X    return obj;
  655. X}
  656. X
  657. X/*
  658. X * Create object `default_command' in the specified instance.
  659. X
  660. X */
  661. XXv_opaque
  662. Xcontool_props_default_command_create(ip, owner)
  663. X    caddr_t        ip;
  664. X    Xv_opaque    owner;
  665. X{
  666. X    Xv_opaque    obj;
  667. X    
  668. X    obj = xv_create(owner, PANEL_TEXT,
  669. X        XV_KEY_DATA, INSTANCE, ip,
  670. X        XV_HELP_DATA, "contool:default_command",
  671. X        XV_X, 306,
  672. X        XV_Y, 48,
  673. X        XV_WIDTH, 177,
  674. X        XV_HEIGHT, 15,
  675. X        PANEL_VALUE_X, 315,
  676. X        PANEL_VALUE_Y, 48,
  677. X        PANEL_LAYOUT, PANEL_HORIZONTAL,
  678. X        PANEL_VALUE_DISPLAY_LENGTH, 21,
  679. X        PANEL_VALUE_STORED_LENGTH, 1024,
  680. X        PANEL_READ_ONLY, FALSE,
  681. X        NULL);
  682. X    return obj;
  683. X}
  684. X
  685. X/*
  686. X * Create object `log_file' in the specified instance.
  687. X
  688. X */
  689. XXv_opaque
  690. Xcontool_props_log_file_create(ip, owner)
  691. X    caddr_t        ip;
  692. X    Xv_opaque    owner;
  693. X{
  694. X    extern Panel_setting    file_completion();
  695. X    Xv_opaque    obj;
  696. X    
  697. X    obj = xv_create(owner, PANEL_TEXT,
  698. X        XV_KEY_DATA, INSTANCE, ip,
  699. X        XV_HELP_DATA, "contool:log_file",
  700. X        XV_X, 141,
  701. X        XV_Y, 174,
  702. X        XV_WIDTH, 344,
  703. X        XV_HEIGHT, 15,
  704. X        PANEL_LABEL_STRING, "Log file:",
  705. X        PANEL_VALUE_X, 205,
  706. X        PANEL_VALUE_Y, 174,
  707. X        PANEL_LAYOUT, PANEL_HORIZONTAL,
  708. X        PANEL_VALUE_DISPLAY_LENGTH, 35,
  709. X        PANEL_VALUE_STORED_LENGTH, 256,
  710. X        PANEL_READ_ONLY, FALSE,
  711. X        PANEL_NOTIFY_PROC, file_completion,
  712. X        NULL);
  713. X    return obj;
  714. X}
  715. X
  716. X/*
  717. X * Create object `log_style' in the specified instance.
  718. X
  719. X */
  720. XXv_opaque
  721. Xcontool_props_log_style_create(ip, owner)
  722. X    caddr_t        ip;
  723. X    Xv_opaque    owner;
  724. X{
  725. X    Xv_opaque    obj;
  726. X    
  727. X    obj = xv_create(owner, PANEL_CHOICE,
  728. X        XV_KEY_DATA, INSTANCE, ip,
  729. X        XV_HELP_DATA, "contool:log_style",
  730. X        XV_X, 96,
  731. X        XV_Y, 194,
  732. X        XV_WIDTH, 314,
  733. X        XV_HEIGHT, 23,
  734. X        PANEL_VALUE_X, 205,
  735. X        PANEL_VALUE_Y, 194,
  736. X        PANEL_LAYOUT, PANEL_HORIZONTAL,
  737. X        PANEL_CHOICE_NROWS, 1,
  738. X        PANEL_LABEL_STRING, "Log messages:",
  739. X        PANEL_CHOICE_STRINGS,
  740. X            "Before filtering",
  741. X            "After filtering",
  742. X            0,
  743. X        NULL);
  744. X    return obj;
  745. X}
  746. X
  747. X/*
  748. X * Create object `print_filter' in the specified instance.
  749. X
  750. X */
  751. XXv_opaque
  752. Xcontool_props_print_filter_create(ip, owner)
  753. X    caddr_t        ip;
  754. X    Xv_opaque    owner;
  755. X{
  756. X    Xv_opaque    obj;
  757. X    
  758. X    obj = xv_create(owner, PANEL_TEXT,
  759. X        XV_KEY_DATA, INSTANCE, ip,
  760. X        XV_HELP_DATA, "contool:print_filter",
  761. X        XV_X, 119,
  762. X        XV_Y, 237,
  763. X        XV_WIDTH, 364,
  764. X        XV_HEIGHT, 15,
  765. X        PANEL_LABEL_STRING, "Print filter:",
  766. X        PANEL_VALUE_X, 203,
  767. X        PANEL_VALUE_Y, 237,
  768. X        PANEL_LAYOUT, PANEL_HORIZONTAL,
  769. X        PANEL_VALUE_DISPLAY_LENGTH, 35,
  770. X        PANEL_VALUE_STORED_LENGTH, 256,
  771. X        PANEL_READ_ONLY, FALSE,
  772. X        NULL);
  773. X    return obj;
  774. X}
  775. X
  776. X/*
  777. X * Create object `good_icon' in the specified instance.
  778. X
  779. X */
  780. XXv_opaque
  781. Xcontool_props_good_icon_create(ip, owner)
  782. X    caddr_t        ip;
  783. X    Xv_opaque    owner;
  784. X{
  785. X    extern Panel_setting    file_completion();
  786. X    Xv_opaque    obj;
  787. X    
  788. X    obj = xv_create(owner, PANEL_TEXT,
  789. X        XV_KEY_DATA, INSTANCE, ip,
  790. X        XV_HELP_DATA, "contool:good_icon",
  791. X        XV_X, 79,
  792. X        XV_Y, 274,
  793. X        XV_WIDTH, 406,
  794. X        XV_HEIGHT, 15,
  795. X        PANEL_LABEL_STRING, "\"All is well\" icon:",
  796. X        PANEL_VALUE_X, 205,
  797. X        PANEL_VALUE_Y, 274,
  798. X        PANEL_LAYOUT, PANEL_HORIZONTAL,
  799. X        PANEL_VALUE_DISPLAY_LENGTH, 35,
  800. X        PANEL_VALUE_STORED_LENGTH, 256,
  801. X        PANEL_READ_ONLY, FALSE,
  802. X        PANEL_NOTIFY_PROC, file_completion,
  803. X        NULL);
  804. X    return obj;
  805. X}
  806. X
  807. X/*
  808. X * Create object `bad_icon' in the specified instance.
  809. X
  810. X */
  811. XXv_opaque
  812. Xcontool_props_bad_icon_create(ip, owner)
  813. X    caddr_t        ip;
  814. X    Xv_opaque    owner;
  815. X{
  816. X    extern Panel_setting    file_completion();
  817. X    Xv_opaque    obj;
  818. X    
  819. X    obj = xv_create(owner, PANEL_TEXT,
  820. X        XV_KEY_DATA, INSTANCE, ip,
  821. X        XV_HELP_DATA, "contool:bad_icon",
  822. X        XV_X, 50,
  823. X        XV_Y, 294,
  824. X        XV_WIDTH, 435,
  825. X        XV_HEIGHT, 15,
  826. X        PANEL_LABEL_STRING, "\"Check console\" icon:",
  827. X        PANEL_VALUE_X, 205,
  828. X        PANEL_VALUE_Y, 294,
  829. X        PANEL_LAYOUT, PANEL_HORIZONTAL,
  830. X        PANEL_VALUE_DISPLAY_LENGTH, 35,
  831. X        PANEL_VALUE_STORED_LENGTH, 256,
  832. X        PANEL_READ_ONLY, FALSE,
  833. X        PANEL_NOTIFY_PROC, file_completion,
  834. X        NULL);
  835. X    return obj;
  836. X}
  837. X
  838. X/*
  839. X * Create object `flash_icon' in the specified instance.
  840. X
  841. X */
  842. XXv_opaque
  843. Xcontool_props_flash_icon_create(ip, owner)
  844. X    caddr_t        ip;
  845. X    Xv_opaque    owner;
  846. X{
  847. X    extern Panel_setting    file_completion();
  848. X    Xv_opaque    obj;
  849. X    
  850. X    obj = xv_create(owner, PANEL_TEXT,
  851. X        XV_KEY_DATA, INSTANCE, ip,
  852. X        XV_HELP_DATA, "contool:flash_icon",
  853. X        XV_X, 111,
  854. X        XV_Y, 314,
  855. X        XV_WIDTH, 374,
  856. X        XV_HEIGHT, 15,
  857. X        PANEL_LABEL_STRING, "\"Flash\" icon:",
  858. X        PANEL_VALUE_X, 205,
  859. X        PANEL_VALUE_Y, 314,
  860. X        PANEL_LAYOUT, PANEL_HORIZONTAL,
  861. X        PANEL_VALUE_DISPLAY_LENGTH, 35,
  862. X        PANEL_VALUE_STORED_LENGTH, 256,
  863. X        PANEL_READ_ONLY, FALSE,
  864. X        PANEL_NOTIFY_PROC, file_completion,
  865. X        NULL);
  866. X    return obj;
  867. X}
  868. X
  869. X/*
  870. X * Create object `stamp_resolution' in the specified instance.
  871. X
  872. X */
  873. XXv_opaque
  874. Xcontool_props_stamp_resolution_create(ip, owner)
  875. X    caddr_t        ip;
  876. X    Xv_opaque    owner;
  877. X{
  878. X    Xv_opaque    obj;
  879. X    
  880. X    obj = xv_create(owner, PANEL_NUMERIC_TEXT,
  881. X        XV_KEY_DATA, INSTANCE, ip,
  882. X        XV_HELP_DATA, "contool:stamp_resolution",
  883. X        XV_X, 40,
  884. X        XV_Y, 350,
  885. X        XV_WIDTH, 246,
  886. X        XV_HEIGHT, 15,
  887. X        PANEL_LABEL_STRING, "Timestamp resolution:",
  888. X        PANEL_VALUE_X, 205,
  889. X        PANEL_VALUE_Y, 350,
  890. X        PANEL_LAYOUT, PANEL_HORIZONTAL,
  891. X        PANEL_VALUE_DISPLAY_LENGTH, 6,
  892. X        PANEL_VALUE_STORED_LENGTH, 6,
  893. X        PANEL_MAX_VALUE, 999,
  894. X        PANEL_MIN_VALUE, 0,
  895. X        PANEL_READ_ONLY, FALSE,
  896. X        NULL);
  897. X    return obj;
  898. X}
  899. X
  900. X/*
  901. X * Create object `message2' in the specified instance.
  902. X
  903. X */
  904. XXv_opaque
  905. Xcontool_props_message2_create(ip, owner)
  906. X    caddr_t        ip;
  907. X    Xv_opaque    owner;
  908. X{
  909. X    Xv_opaque    obj;
  910. X    
  911. X    obj = xv_create(owner, PANEL_MESSAGE,
  912. X        XV_KEY_DATA, INSTANCE, ip,
  913. X        XV_HELP_DATA, "contool:message2",
  914. X        XV_X, 296,
  915. X        XV_Y, 350,
  916. X        XV_WIDTH, 48,
  917. X        XV_HEIGHT, 13,
  918. X        PANEL_LABEL_STRING, "seconds",
  919. X        PANEL_LABEL_BOLD, FALSE,
  920. X        NULL);
  921. X    return obj;
  922. X}
  923. X
  924. X/*
  925. X * Create object `max_message' in the specified instance.
  926. X
  927. X */
  928. XXv_opaque
  929. Xcontool_props_max_message_create(ip, owner)
  930. X    caddr_t        ip;
  931. X    Xv_opaque    owner;
  932. X{
  933. X    Xv_opaque    obj;
  934. X    
  935. X    obj = xv_create(owner, PANEL_NUMERIC_TEXT,
  936. X        XV_KEY_DATA, INSTANCE, ip,
  937. X        XV_HELP_DATA, "contool:max_message",
  938. X        XV_X, 32,
  939. X        XV_Y, 386,
  940. X        XV_WIDTH, 254,
  941. X        XV_HEIGHT, 15,
  942. X        PANEL_LABEL_STRING, "Maximum message text:",
  943. X        PANEL_VALUE_X, 205,
  944. X        PANEL_VALUE_Y, 386,
  945. X        PANEL_LAYOUT, PANEL_HORIZONTAL,
  946. X        PANEL_VALUE_DISPLAY_LENGTH, 6,
  947. X        PANEL_VALUE_STORED_LENGTH, 6,
  948. X        PANEL_MAX_VALUE, 999999,
  949. X        PANEL_MIN_VALUE, 0,
  950. X        PANEL_READ_ONLY, FALSE,
  951. X        NULL);
  952. X    return obj;
  953. X}
  954. X
  955. X/*
  956. X * Create object `message3' in the specified instance.
  957. X
  958. X */
  959. XXv_opaque
  960. Xcontool_props_message3_create(ip, owner)
  961. X    caddr_t        ip;
  962. X    Xv_opaque    owner;
  963. X{
  964. X    Xv_opaque    obj;
  965. X    
  966. X    obj = xv_create(owner, PANEL_MESSAGE,
  967. X        XV_KEY_DATA, INSTANCE, ip,
  968. X        XV_HELP_DATA, "contool:message3",
  969. X        XV_X, 295,
  970. X        XV_Y, 386,
  971. X        XV_WIDTH, 33,
  972. X        XV_HEIGHT, 13,
  973. X        PANEL_LABEL_STRING, "bytes",
  974. X        PANEL_LABEL_BOLD, FALSE,
  975. X        NULL);
  976. X    return obj;
  977. X}
  978. X
  979. X/*
  980. X * Create object `delete_amount' in the specified instance.
  981. X
  982. X */
  983. XXv_opaque
  984. Xcontool_props_delete_amount_create(ip, owner)
  985. X    caddr_t        ip;
  986. X    Xv_opaque    owner;
  987. X{
  988. X    Xv_opaque    obj;
  989. X    
  990. X    obj = xv_create(owner, PANEL_NUMERIC_TEXT,
  991. X        XV_KEY_DATA, INSTANCE, ip,
  992. X        XV_HELP_DATA, "contool:delete_amount",
  993. X        XV_X, 14,
  994. X        XV_Y, 406,
  995. X        XV_WIDTH, 272,
  996. X        XV_HEIGHT, 15,
  997. X        PANEL_LABEL_STRING, "Overflow deletion amount:",
  998. X        PANEL_VALUE_X, 205,
  999. X        PANEL_VALUE_Y, 406,
  1000. X        PANEL_LAYOUT, PANEL_HORIZONTAL,
  1001. X        PANEL_VALUE_DISPLAY_LENGTH, 6,
  1002. X        PANEL_VALUE_STORED_LENGTH, 6,
  1003. X        PANEL_MAX_VALUE, 999999,
  1004. X        PANEL_MIN_VALUE, 0,
  1005. X        PANEL_READ_ONLY, FALSE,
  1006. X        NULL);
  1007. X    return obj;
  1008. X}
  1009. X
  1010. X/*
  1011. X * Create object `message4' in the specified instance.
  1012. X
  1013. X */
  1014. XXv_opaque
  1015. Xcontool_props_message4_create(ip, owner)
  1016. X    caddr_t        ip;
  1017. X    Xv_opaque    owner;
  1018. X{
  1019. X    Xv_opaque    obj;
  1020. X    
  1021. X    obj = xv_create(owner, PANEL_MESSAGE,
  1022. X        XV_KEY_DATA, INSTANCE, ip,
  1023. X        XV_HELP_DATA, "contool:message4",
  1024. X        XV_X, 295,
  1025. X        XV_Y, 406,
  1026. X        XV_WIDTH, 33,
  1027. X        XV_HEIGHT, 13,
  1028. X        PANEL_LABEL_STRING, "bytes",
  1029. X        PANEL_LABEL_BOLD, FALSE,
  1030. X        NULL);
  1031. X    return obj;
  1032. X}
  1033. X
  1034. X/*
  1035. X * Create object `props_apply' in the specified instance.
  1036. X
  1037. X */
  1038. XXv_opaque
  1039. Xcontool_props_props_apply_create(ip, owner)
  1040. X    caddr_t        ip;
  1041. X    Xv_opaque    owner;
  1042. X{
  1043. X    extern void        accept_properties();
  1044. X    Xv_opaque    obj;
  1045. X    
  1046. X    obj = xv_create(owner, PANEL_BUTTON,
  1047. X        XV_KEY_DATA, INSTANCE, ip,
  1048. X        XV_HELP_DATA, "contool:props_apply",
  1049. X        XV_X, 191,
  1050. X        XV_Y, 442,
  1051. X        XV_WIDTH, 53,
  1052. X        XV_HEIGHT, 20,
  1053. X        PANEL_LABEL_STRING, "Apply",
  1054. X        PANEL_NOTIFY_PROC, accept_properties,
  1055. X        NULL);
  1056. X    return obj;
  1057. X}
  1058. X
  1059. X/*
  1060. X * Create object `props_reset' in the specified instance.
  1061. X
  1062. X */
  1063. XXv_opaque
  1064. Xcontool_props_props_reset_create(ip, owner)
  1065. X    caddr_t        ip;
  1066. X    Xv_opaque    owner;
  1067. X{
  1068. X    extern void        reset_properties();
  1069. X    Xv_opaque    obj;
  1070. X    
  1071. X    obj = xv_create(owner, PANEL_BUTTON,
  1072. X        XV_KEY_DATA, INSTANCE, ip,
  1073. X        XV_HELP_DATA, "contool:props_reset",
  1074. X        XV_X, 256,
  1075. X        XV_Y, 442,
  1076. X        XV_WIDTH, 51,
  1077. X        XV_HEIGHT, 20,
  1078. X        PANEL_LABEL_STRING, "Reset",
  1079. X        PANEL_NOTIFY_PROC, reset_properties,
  1080. X        NULL);
  1081. X    return obj;
  1082. X}
  1083. X
  1084. X/*
  1085. X * Initialize an instance of object `filters'.
  1086. X */
  1087. Xcontool_filters_objects *
  1088. Xcontool_filters_objects_initialize(ip, owner)
  1089. X    contool_filters_objects    *ip;
  1090. X    Xv_opaque    owner;
  1091. X{
  1092. X    if (!ip && !(ip = (contool_filters_objects *) calloc(1, sizeof (contool_filters_objects))))
  1093. X        return (contool_filters_objects *) NULL;
  1094. X    if (!ip->filters)
  1095. X        ip->filters = contool_filters_filters_create(ip, owner);
  1096. X    if (!ip->filter_controls)
  1097. X        ip->filter_controls = contool_filters_filter_controls_create(ip, ip->filters);
  1098. X    if (!ip->filter_list)
  1099. X        ip->filter_list = contool_filters_filter_list_create(ip, ip->filter_controls);
  1100. X    if (!ip->filter_insert)
  1101. X        ip->filter_insert = contool_filters_filter_insert_create(ip, ip->filter_controls);
  1102. X    if (!ip->filter_edit)
  1103. X        ip->filter_edit = contool_filters_filter_edit_create(ip, ip->filter_controls);
  1104. X    if (!ip->filter_update)
  1105. X        ip->filter_update = contool_filters_filter_update_create(ip, ip->filter_controls);
  1106. X    if (!ip->filter_type)
  1107. X        ip->filter_type = contool_filters_filter_type_create(ip, ip->filter_controls);
  1108. X    if (!ip->start)
  1109. X        ip->start = contool_filters_start_create(ip, ip->filter_controls);
  1110. X    if (!ip->stop)
  1111. X        ip->stop = contool_filters_stop_create(ip, ip->filter_controls);
  1112. X    if (!ip->comment)
  1113. X        ip->comment = contool_filters_comment_create(ip, ip->filter_controls);
  1114. X    if (!ip->ignore)
  1115. X        ip->ignore = contool_filters_ignore_create(ip, ip->filter_controls);
  1116. X    if (!ip->action)
  1117. X        ip->action = contool_filters_action_create(ip, ip->filter_controls);
  1118. X    if (!ip->filter_beep_count)
  1119. X        ip->filter_beep_count = contool_filters_filter_beep_count_create(ip, ip->filter_controls);
  1120. X    if (!ip->filter_beep_times)
  1121. X        ip->filter_beep_times = contool_filters_filter_beep_times_create(ip, ip->filter_controls);
  1122. X    if (!ip->filter_command)
  1123. X        ip->filter_command = contool_filters_filter_command_create(ip, ip->filter_controls);
  1124. X    if (!ip->filters_apply)
  1125. X        ip->filters_apply = contool_filters_filters_apply_create(ip, ip->filter_controls);
  1126. X    if (!ip->filters_reset)
  1127. X        ip->filters_reset = contool_filters_filters_reset_create(ip, ip->filter_controls);
  1128. X    return ip;
  1129. X}
  1130. X
  1131. X/*
  1132. X * Create object `filters' in the specified instance.
  1133. X
  1134. X */
  1135. XXv_opaque
  1136. Xcontool_filters_filters_create(ip, owner)
  1137. X    caddr_t        ip;
  1138. X    Xv_opaque    owner;
  1139. X{
  1140. X    extern void    filter_done();
  1141. X    Xv_opaque    obj;
  1142. X    
  1143. X    obj = xv_create(owner, FRAME_CMD,
  1144. X        XV_KEY_DATA, INSTANCE, ip,
  1145. X        XV_WIDTH, 510,
  1146. X        XV_HEIGHT, 620,
  1147. X        XV_LABEL, "Contool: Filters",
  1148. X        XV_SHOW, FALSE,
  1149. X        FRAME_SHOW_FOOTER, FALSE,
  1150. X        FRAME_SHOW_RESIZE_CORNER, FALSE,
  1151. X        FRAME_CMD_PUSHPIN_IN, FALSE,
  1152. X        FRAME_DONE_PROC, filter_done,
  1153. X        NULL);
  1154. X    xv_set(xv_get(obj, FRAME_CMD_PANEL), WIN_SHOW, FALSE, NULL);
  1155. X    return obj;
  1156. X}
  1157. X
  1158. X/*
  1159. X * Create object `filter_controls' in the specified instance.
  1160. X
  1161. X */
  1162. XXv_opaque
  1163. Xcontool_filters_filter_controls_create(ip, owner)
  1164. X    caddr_t        ip;
  1165. X    Xv_opaque    owner;
  1166. X{
  1167. X    Xv_opaque    obj;
  1168. X    
  1169. X    obj = xv_create(owner, PANEL,
  1170. X        XV_KEY_DATA, INSTANCE, ip,
  1171. X        XV_HELP_DATA, "contool:filter_controls",
  1172. X        XV_X, 0,
  1173. X        XV_Y, 0,
  1174. X        XV_WIDTH, WIN_EXTEND_TO_EDGE,
  1175. X        XV_HEIGHT, WIN_EXTEND_TO_EDGE,
  1176. X        WIN_BORDER, FALSE,
  1177. X        NULL);
  1178. X    return obj;
  1179. X}
  1180. X
  1181. X/*
  1182. X * Create object `filter_list' in the specified instance.
  1183. X
  1184. X */
  1185. XXv_opaque
  1186. Xcontool_filters_filter_list_create(ip, owner)
  1187. X    caddr_t        ip;
  1188. X    Xv_opaque    owner;
  1189. X{
  1190. X    extern int        filter_notify();
  1191. X    Xv_opaque    obj;
  1192. X    
  1193. X    obj = xv_create(owner, PANEL_LIST,
  1194. X        XV_KEY_DATA, INSTANCE, ip,
  1195. X        XV_HELP_DATA, "contool:filter_list",
  1196. X        XV_X, 70,
  1197. X        XV_Y, 14,
  1198. X        PANEL_LIST_WIDTH, 350,
  1199. X        XV_HEIGHT, 200,
  1200. X        PANEL_LABEL_STRING, "Filters:",
  1201. X        PANEL_LAYOUT, PANEL_HORIZONTAL,
  1202. X        PANEL_LIST_DISPLAY_ROWS, 10,
  1203. X        PANEL_READ_ONLY, TRUE,
  1204. X        PANEL_CHOOSE_ONE, FALSE,
  1205. X        PANEL_CHOOSE_NONE, TRUE,
  1206. X        PANEL_NOTIFY_PROC, filter_notify,
  1207. X        NULL);
  1208. X    return obj;
  1209. X}
  1210. X
  1211. X/*
  1212. X * Create object `filter_insert' in the specified instance.
  1213. X
  1214. X */
  1215. XXv_opaque
  1216. Xcontool_filters_filter_insert_create(ip, owner)
  1217. X    caddr_t        ip;
  1218. X    Xv_opaque    owner;
  1219. X{
  1220. X    Xv_opaque    obj;
  1221. X    
  1222. X    obj = xv_create(owner, PANEL_BUTTON,
  1223. X        XV_KEY_DATA, INSTANCE, ip,
  1224. X        XV_HELP_DATA, "contool:filter_insert",
  1225. X        XV_X, 126,
  1226. X        XV_Y, 218,
  1227. X        XV_WIDTH, 67,
  1228. X        XV_HEIGHT, 20,
  1229. X        PANEL_LABEL_STRING, "Insert",
  1230. X        PANEL_ITEM_MENU, contool_filter_insert_menu_create((caddr_t *) ip, NULL),
  1231. X        NULL);
  1232. X    return obj;
  1233. X}
  1234. X
  1235. X/*
  1236. X * Create object `filter_edit' in the specified instance.
  1237. X
  1238. X */
  1239. XXv_opaque
  1240. Xcontool_filters_filter_edit_create(ip, owner)
  1241. X    caddr_t        ip;
  1242. X    Xv_opaque    owner;
  1243. X{
  1244. X    Xv_opaque    obj;
  1245. X    
  1246. X    obj = xv_create(owner, PANEL_BUTTON,
  1247. X        XV_KEY_DATA, INSTANCE, ip,
  1248. X        XV_HELP_DATA, "contool:filter_edit",
  1249. X        XV_X, 202,
  1250. X        XV_Y, 218,
  1251. X        XV_WIDTH, 56,
  1252. X        XV_HEIGHT, 20,
  1253. X        PANEL_LABEL_STRING, "Edit",
  1254. X        PANEL_ITEM_MENU, contool_filter_edit_menu_create((caddr_t *) ip, NULL),
  1255. X        NULL);
  1256. X    return obj;
  1257. X}
  1258. X
  1259. X/*
  1260. X * Create object `filter_update' in the specified instance.
  1261. X
  1262. X */
  1263. XXv_opaque
  1264. Xcontool_filters_filter_update_create(ip, owner)
  1265. X    caddr_t        ip;
  1266. X    Xv_opaque    owner;
  1267. X{
  1268. X    extern void        filter_update();
  1269. X    Xv_opaque    obj;
  1270. X    
  1271. X    obj = xv_create(owner, PANEL_BUTTON,
  1272. X        XV_KEY_DATA, INSTANCE, ip,
  1273. X        XV_HELP_DATA, "contool:filter_update",
  1274. X        XV_X, 267,
  1275. X        XV_Y, 218,
  1276. X        XV_WIDTH, 62,
  1277. X        XV_HEIGHT, 20,
  1278. X        PANEL_LABEL_STRING, "Update",
  1279. X        PANEL_NOTIFY_PROC, filter_update,
  1280. X        NULL);
  1281. X    return obj;
  1282. X}
  1283. X
  1284. X/*
  1285. X * Create object `filter_type' in the specified instance.
  1286. X
  1287. X */
  1288. XXv_opaque
  1289. Xcontool_filters_filter_type_create(ip, owner)
  1290. X    caddr_t        ip;
  1291. X    Xv_opaque    owner;
  1292. X{
  1293. X    extern int        set_filter_type();
  1294. X    Xv_opaque    obj;
  1295. X    
  1296. X    obj = xv_create(owner, PANEL_CHOICE,
  1297. X        XV_KEY_DATA, INSTANCE, ip,
  1298. X        XV_HELP_DATA, "contool:filter_type",
  1299. X        XV_X, 80,
  1300. X        XV_Y, 259,
  1301. X        XV_WIDTH, 272,
  1302. X        XV_HEIGHT, 23,
  1303. X        PANEL_VALUE_X, 126,
  1304. X        PANEL_VALUE_Y, 259,
  1305. X        PANEL_LAYOUT, PANEL_HORIZONTAL,
  1306. X        PANEL_CHOICE_NROWS, 1,
  1307. X        PANEL_LABEL_STRING, "Type:",
  1308. X        PANEL_NOTIFY_PROC, set_filter_type,
  1309. X        PANEL_CHOICE_STRINGS,
  1310. X            "Single line filter",
  1311. X            "Multi-line filter",
  1312. X            0,
  1313. X        NULL);
  1314. X    return obj;
  1315. X}
  1316. X
  1317. X/*
  1318. X * Create object `start' in the specified instance.
  1319. X
  1320. X */
  1321. XXv_opaque
  1322. Xcontool_filters_start_create(ip, owner)
  1323. X    caddr_t        ip;
  1324. X    Xv_opaque    owner;
  1325. X{
  1326. X    Xv_opaque    obj;
  1327. X    
  1328. X    obj = xv_create(owner, PANEL_TEXT,
  1329. X        XV_KEY_DATA, INSTANCE, ip,
  1330. X        XV_HELP_DATA, "contool:start",
  1331. X        XV_X, 65,
  1332. X        XV_Y, 303,
  1333. X        XV_WIDTH, 429,
  1334. X        XV_HEIGHT, 15,
  1335. X        PANEL_LABEL_STRING, "Pattern:",
  1336. X        PANEL_VALUE_X, 126,
  1337. X        PANEL_VALUE_Y, 303,
  1338. X        PANEL_LAYOUT, PANEL_HORIZONTAL,
  1339. X        PANEL_VALUE_DISPLAY_LENGTH, 46,
  1340. X        PANEL_VALUE_STORED_LENGTH, 256,
  1341. X        PANEL_READ_ONLY, FALSE,
  1342. X        NULL);
  1343. X    return obj;
  1344. X}
  1345. X
  1346. X/*
  1347. X * Create object `stop' in the specified instance.
  1348. X
  1349. X */
  1350. XXv_opaque
  1351. Xcontool_filters_stop_create(ip, owner)
  1352. X    caddr_t        ip;
  1353. X    Xv_opaque    owner;
  1354. X{
  1355. X    Xv_opaque    obj;
  1356. X    
  1357. X    obj = xv_create(owner, PANEL_TEXT,
  1358. X        XV_KEY_DATA, INSTANCE, ip,
  1359. X        XV_HELP_DATA, "contool:stop",
  1360. X        XV_X, 35,
  1361. X        XV_Y, 323,
  1362. X        XV_WIDTH, 459,
  1363. X        XV_HEIGHT, 15,
  1364. X        PANEL_LABEL_STRING, "End pattern:",
  1365. X        PANEL_VALUE_X, 126,
  1366. X        PANEL_VALUE_Y, 323,
  1367. X        PANEL_LAYOUT, PANEL_HORIZONTAL,
  1368. X        PANEL_VALUE_DISPLAY_LENGTH, 46,
  1369. X        PANEL_VALUE_STORED_LENGTH, 256,
  1370. X        PANEL_READ_ONLY, FALSE,
  1371. X        NULL);
  1372. X    return obj;
  1373. X}
  1374. X
  1375. X/*
  1376. X * Create object `comment' in the specified instance.
  1377. X
  1378. X */
  1379. XXv_opaque
  1380. Xcontool_filters_comment_create(ip, owner)
  1381. X    caddr_t        ip;
  1382. X    Xv_opaque    owner;
  1383. X{
  1384. X    Xv_opaque    obj;
  1385. X    
  1386. X    obj = xv_create(owner, PANEL_TEXT,
  1387. X        XV_KEY_DATA, INSTANCE, ip,
  1388. X        XV_HELP_DATA, "contool:comment",
  1389. X        XV_X, 49,
  1390. X        XV_Y, 359,
  1391. X        XV_WIDTH, 445,
  1392. X        XV_HEIGHT, 15,
  1393. X        PANEL_LABEL_STRING, "Comment:",
  1394. X        PANEL_VALUE_X, 126,
  1395. X        PANEL_VALUE_Y, 359,
  1396. X        PANEL_LAYOUT, PANEL_HORIZONTAL,
  1397. X        PANEL_VALUE_DISPLAY_LENGTH, 46,
  1398. X        PANEL_VALUE_STORED_LENGTH, 256,
  1399. X        PANEL_READ_ONLY, FALSE,
  1400. X        NULL);
  1401. X    return obj;
  1402. X}
  1403. X
  1404. X/*
  1405. X * Create object `ignore' in the specified instance.
  1406. X
  1407. X */
  1408. XXv_opaque
  1409. Xcontool_filters_ignore_create(ip, owner)
  1410. X    caddr_t        ip;
  1411. X    Xv_opaque    owner;
  1412. X{
  1413. X    extern int        set_filter_action();
  1414. X    Xv_opaque    obj;
  1415. X    
  1416. X    obj = xv_create(owner, PANEL_CHOICE,
  1417. X        XV_KEY_DATA, INSTANCE, ip,
  1418. X        XV_HELP_DATA, "contool:ignore",
  1419. X        XV_X, 14,
  1420. X        XV_Y, 395,
  1421. X        XV_WIDTH, 321,
  1422. X        XV_HEIGHT, 23,
  1423. X        PANEL_VALUE_X, 126,
  1424. X        PANEL_VALUE_Y, 395,
  1425. X        PANEL_LAYOUT, PANEL_HORIZONTAL,
  1426. X        PANEL_CHOICE_NROWS, 1,
  1427. X        PANEL_LABEL_STRING, "When matched:",
  1428. X        PANEL_NOTIFY_PROC, set_filter_action,
  1429. X        PANEL_CHOICE_STRINGS,
  1430. X            "Save message",
  1431. X            "Ignore message",
  1432. X            0,
  1433. X        NULL);
  1434. X    return obj;
  1435. X}
  1436. X
  1437. X/*
  1438. X * Create object `action' in the specified instance.
  1439. X
  1440. X */
  1441. XXv_opaque
  1442. Xcontool_filters_action_create(ip, owner)
  1443. X    caddr_t        ip;
  1444. X    Xv_opaque    owner;
  1445. X{
  1446. X    extern int        set_match_action();
  1447. X    Xv_opaque    obj;
  1448. X    
  1449. X    obj = xv_create(owner, PANEL_TOGGLE,
  1450. X        XV_KEY_DATA, INSTANCE, ip,
  1451. X        XV_HELP_DATA, "contool:action",
  1452. X        XV_X, 32,
  1453. X        XV_Y, 423,
  1454. X        XV_WIDTH, 196,
  1455. X        XV_HEIGHT, 139,
  1456. X        PANEL_VALUE_X, 126,
  1457. X        PANEL_VALUE_Y, 423,
  1458. X        PANEL_LAYOUT, PANEL_HORIZONTAL,
  1459. X        PANEL_CHOICE_NCOLS, 1,
  1460. X        PANEL_LABEL_STRING, "When saved:",
  1461. X        PANEL_NOTIFY_PROC, set_match_action,
  1462. X        PANEL_CHOICE_STRINGS,
  1463. X            "Beep",
  1464. X            "Command",
  1465. X            "Flash icon",
  1466. X            "Open window",
  1467. X            "Timestamp",
  1468. X            0,
  1469. X        NULL);
  1470. X    return obj;
  1471. X}
  1472. X
  1473. X/*
  1474. X * Create object `filter_beep_count' in the specified instance.
  1475. X
  1476. X */
  1477. XXv_opaque
  1478. Xcontool_filters_filter_beep_count_create(ip, owner)
  1479. X    caddr_t        ip;
  1480. X    Xv_opaque    owner;
  1481. X{
  1482. X    Xv_opaque    obj;
  1483. X    
  1484. X    obj = xv_create(owner, PANEL_NUMERIC_TEXT,
  1485. X        XV_KEY_DATA, INSTANCE, ip,
  1486. X        XV_HELP_DATA, "contool:filter_beep_count",
  1487. X        XV_X, 228,
  1488. X        XV_Y, 428,
  1489. X        XV_WIDTH, 80,
  1490. X        XV_HEIGHT, 15,
  1491. X        PANEL_VALUE_X, 237,
  1492. X        PANEL_VALUE_Y, 428,
  1493. X        PANEL_LAYOUT, PANEL_HORIZONTAL,
  1494. X        PANEL_VALUE_DISPLAY_LENGTH, 2,
  1495. X        PANEL_VALUE_STORED_LENGTH, 2,
  1496. X        PANEL_MAX_VALUE, 99,
  1497. X        PANEL_MIN_VALUE, 0,
  1498. X        PANEL_READ_ONLY, FALSE,
  1499. X        NULL);
  1500. X    return obj;
  1501. X}
  1502. X
  1503. X/*
  1504. X * Create object `filter_beep_times' in the specified instance.
  1505. X
  1506. X */
  1507. XXv_opaque
  1508. Xcontool_filters_filter_beep_times_create(ip, owner)
  1509. X    caddr_t        ip;
  1510. X    Xv_opaque    owner;
  1511. X{
  1512. X    Xv_opaque    obj;
  1513. X    
  1514. X    obj = xv_create(owner, PANEL_MESSAGE,
  1515. X        XV_KEY_DATA, INSTANCE, ip,
  1516. X        XV_HELP_DATA, "contool:filter_beep_times",
  1517. X        XV_X, 316,
  1518. X        XV_Y, 428,
  1519. X        XV_WIDTH, 34,
  1520. X        XV_HEIGHT, 13,
  1521. X        PANEL_LABEL_STRING, "times",
  1522. X        PANEL_LABEL_BOLD, FALSE,
  1523. X        NULL);
  1524. X    return obj;
  1525. X}
  1526. X
  1527. X/*
  1528. X * Create object `filter_command' in the specified instance.
  1529. X
  1530. X */
  1531. XXv_opaque
  1532. Xcontool_filters_filter_command_create(ip, owner)
  1533. X    caddr_t        ip;
  1534. X    Xv_opaque    owner;
  1535. X{
  1536. X    Xv_opaque    obj;
  1537. X    
  1538. X    obj = xv_create(owner, PANEL_TEXT,
  1539. X        XV_KEY_DATA, INSTANCE, ip,
  1540. X        XV_HELP_DATA, "contool:filter_command",
  1541. X        XV_X, 228,
  1542. X        XV_Y, 457,
  1543. X        XV_WIDTH, 265,
  1544. X        XV_HEIGHT, 15,
  1545. X        PANEL_VALUE_X, 237,
  1546. X        PANEL_VALUE_Y, 457,
  1547. X        PANEL_LAYOUT, PANEL_HORIZONTAL,
  1548. X        PANEL_VALUE_DISPLAY_LENGTH, 32,
  1549. X        PANEL_VALUE_STORED_LENGTH, 1024,
  1550. X        PANEL_READ_ONLY, FALSE,
  1551. X        NULL);
  1552. X    return obj;
  1553. X}
  1554. X
  1555. X/*
  1556. X * Create object `filters_apply' in the specified instance.
  1557. X
  1558. X */
  1559. XXv_opaque
  1560. Xcontool_filters_filters_apply_create(ip, owner)
  1561. X    caddr_t        ip;
  1562. X    Xv_opaque    owner;
  1563. X{
  1564. X    extern void        accept_filters();
  1565. X    Xv_opaque    obj;
  1566. X    
  1567. X    obj = xv_create(owner, PANEL_BUTTON,
  1568. X        XV_KEY_DATA, INSTANCE, ip,
  1569. X        XV_HELP_DATA, "contool:filters_apply",
  1570. X        XV_X, 196,
  1571. X        XV_Y, 583,
  1572. X        XV_WIDTH, 53,
  1573. X        XV_HEIGHT, 20,
  1574. X        PANEL_LABEL_STRING, "Apply",
  1575. X        PANEL_NOTIFY_PROC, accept_filters,
  1576. X        NULL);
  1577. X    return obj;
  1578. X}
  1579. X
  1580. X/*
  1581. X * Create object `filters_reset' in the specified instance.
  1582. X
  1583. X */
  1584. XXv_opaque
  1585. Xcontool_filters_filters_reset_create(ip, owner)
  1586. X    caddr_t        ip;
  1587. X    Xv_opaque    owner;
  1588. X{
  1589. X    extern void        reset_filters();
  1590. X    Xv_opaque    obj;
  1591. X    
  1592. X    obj = xv_create(owner, PANEL_BUTTON,
  1593. X        XV_KEY_DATA, INSTANCE, ip,
  1594. X        XV_HELP_DATA, "contool:filters_reset",
  1595. X        XV_X, 261,
  1596. X        XV_Y, 583,
  1597. X        XV_WIDTH, 51,
  1598. X        XV_HEIGHT, 20,
  1599. X        PANEL_LABEL_STRING, "Reset",
  1600. X        PANEL_NOTIFY_PROC, reset_filters,
  1601. X        NULL);
  1602. X    return obj;
  1603. X}
  1604. X
  1605. X/*
  1606. X * Initialize an instance of object `load'.
  1607. X */
  1608. Xcontool_load_objects *
  1609. Xcontool_load_objects_initialize(ip, owner)
  1610. X    contool_load_objects    *ip;
  1611. X    Xv_opaque    owner;
  1612. X{
  1613. X    if (!ip && !(ip = (contool_load_objects *) calloc(1, sizeof (contool_load_objects))))
  1614. X        return (contool_load_objects *) NULL;
  1615. X    if (!ip->load)
  1616. X        ip->load = contool_load_load_create(ip, owner);
  1617. X    if (!ip->load_controls)
  1618. X        ip->load_controls = contool_load_load_controls_create(ip, ip->load);
  1619. X    if (!ip->load_type)
  1620. X        ip->load_type = contool_load_load_type_create(ip, ip->load_controls);
  1621. X    if (!ip->load_file)
  1622. X        ip->load_file = contool_load_load_file_create(ip, ip->load_controls);
  1623. X    if (!ip->accept_load)
  1624. X        ip->accept_load = contool_load_accept_load_create(ip, ip->load_controls);
  1625. X    return ip;
  1626. X}
  1627. X
  1628. X/*
  1629. X * Create object `load' in the specified instance.
  1630. X
  1631. X */
  1632. XXv_opaque
  1633. Xcontool_load_load_create(ip, owner)
  1634. X    caddr_t        ip;
  1635. X    Xv_opaque    owner;
  1636. X{
  1637. X    Xv_opaque    obj;
  1638. X    
  1639. X    obj = xv_create(owner, FRAME_CMD,
  1640. X        XV_KEY_DATA, INSTANCE, ip,
  1641. X        XV_WIDTH, 444,
  1642. X        XV_HEIGHT, 146,
  1643. X        XV_LABEL, "Contool: Load Configuration",
  1644. X        XV_SHOW, FALSE,
  1645. X        FRAME_SHOW_FOOTER, FALSE,
  1646. X        FRAME_SHOW_RESIZE_CORNER, FALSE,
  1647. X        FRAME_CMD_PUSHPIN_IN, FALSE,
  1648. X        NULL);
  1649. X    xv_set(xv_get(obj, FRAME_CMD_PANEL), WIN_SHOW, FALSE, NULL);
  1650. X    return obj;
  1651. X}
  1652. X
  1653. X/*
  1654. X * Create object `load_controls' in the specified instance.
  1655. X
  1656. X */
  1657. XXv_opaque
  1658. Xcontool_load_load_controls_create(ip, owner)
  1659. X    caddr_t        ip;
  1660. X    Xv_opaque    owner;
  1661. X{
  1662. X    Xv_opaque    obj;
  1663. X    
  1664. X    obj = xv_create(owner, PANEL,
  1665. X        XV_KEY_DATA, INSTANCE, ip,
  1666. X        XV_HELP_DATA, "contool:load_controls",
  1667. X        XV_X, 0,
  1668. X        XV_Y, 0,
  1669. X        XV_WIDTH, WIN_EXTEND_TO_EDGE,
  1670. X        XV_HEIGHT, WIN_EXTEND_TO_EDGE,
  1671. X        WIN_BORDER, FALSE,
  1672. X        NULL);
  1673. X    return obj;
  1674. X}
  1675. X
  1676. X/*
  1677. X * Create object `load_type' in the specified instance.
  1678. X
  1679. X */
  1680. XXv_opaque
  1681. Xcontool_load_load_type_create(ip, owner)
  1682. X    caddr_t        ip;
  1683. X    Xv_opaque    owner;
  1684. X{
  1685. X    Xv_opaque    obj;
  1686. X    
  1687. X    obj = xv_create(owner, PANEL_TOGGLE,
  1688. X        XV_KEY_DATA, INSTANCE, ip,
  1689. X        XV_HELP_DATA, "contool:load_type",
  1690. X        XV_X, 105,
  1691. X        XV_Y, 14,
  1692. X        XV_WIDTH, 162,
  1693. X        XV_HEIGHT, 52,
  1694. X        PANEL_VALUE_X, 149,
  1695. X        PANEL_VALUE_Y, 14,
  1696. X        PANEL_LAYOUT, PANEL_HORIZONTAL,
  1697. X        PANEL_CHOICE_NCOLS, 1,
  1698. X        PANEL_LABEL_STRING, "Load:",
  1699. X        PANEL_CHOICE_STRINGS,
  1700. X            "Tool properties",
  1701. X            "Filter definitions",
  1702. X            0,
  1703. X        NULL);
  1704. X    return obj;
  1705. X}
  1706. X
  1707. X/*
  1708. X * Create object `load_file' in the specified instance.
  1709. X
  1710. X */
  1711. XXv_opaque
  1712. Xcontool_load_load_file_create(ip, owner)
  1713. X    caddr_t        ip;
  1714. X    Xv_opaque    owner;
  1715. X{
  1716. X    extern Panel_setting    file_completion();
  1717. X    Xv_opaque    obj;
  1718. X    
  1719. X    obj = xv_create(owner, PANEL_TEXT,
  1720. X        XV_KEY_DATA, INSTANCE, ip,
  1721. X        XV_HELP_DATA, "contool:load_file",
  1722. X        XV_X, 14,
  1723. X        XV_Y, 72,
  1724. X        XV_WIDTH, 415,
  1725. X        XV_HEIGHT, 15,
  1726. X        PANEL_LABEL_STRING, "Configuration file:",
  1727. X        PANEL_VALUE_X, 149,
  1728. X        PANEL_VALUE_Y, 72,
  1729. X        PANEL_LAYOUT, PANEL_HORIZONTAL,
  1730. X        PANEL_VALUE_DISPLAY_LENGTH, 35,
  1731. X        PANEL_VALUE_STORED_LENGTH, 256,
  1732. X        PANEL_READ_ONLY, FALSE,
  1733. X        PANEL_NOTIFY_PROC, file_completion,
  1734. X        NULL);
  1735. X    return obj;
  1736. X}
  1737. X
  1738. X/*
  1739. X * Create object `accept_load' in the specified instance.
  1740. X
  1741. X */
  1742. XXv_opaque
  1743. Xcontool_load_accept_load_create(ip, owner)
  1744. X    caddr_t        ip;
  1745. X    Xv_opaque    owner;
  1746. X{
  1747. X    extern void        load_filters();
  1748. X    Xv_opaque    obj;
  1749. X    
  1750. X    obj = xv_create(owner, PANEL_BUTTON,
  1751. X        XV_KEY_DATA, INSTANCE, ip,
  1752. X        XV_HELP_DATA, "contool:accept_load",
  1753. X        XV_X, 199,
  1754. X        XV_Y, 107,
  1755. X        XV_WIDTH, 46,
  1756. X        XV_HEIGHT, 20,
  1757. X        PANEL_LABEL_STRING, "Load",
  1758. X        PANEL_NOTIFY_PROC, load_filters,
  1759. X        NULL);
  1760. X    return obj;
  1761. X}
  1762. X
  1763. X/*
  1764. X * Initialize an instance of object `store'.
  1765. X */
  1766. Xcontool_store_objects *
  1767. Xcontool_store_objects_initialize(ip, owner)
  1768. X    contool_store_objects    *ip;
  1769. X    Xv_opaque    owner;
  1770. X{
  1771. X    if (!ip && !(ip = (contool_store_objects *) calloc(1, sizeof (contool_store_objects))))
  1772. X        return (contool_store_objects *) NULL;
  1773. X    if (!ip->store)
  1774. X        ip->store = contool_store_store_create(ip, owner);
  1775. X    if (!ip->store_controls)
  1776. X        ip->store_controls = contool_store_store_controls_create(ip, ip->store);
  1777. X    if (!ip->store_type)
  1778. X        ip->store_type = contool_store_store_type_create(ip, ip->store_controls);
  1779. X    if (!ip->store_file)
  1780. X        ip->store_file = contool_store_store_file_create(ip, ip->store_controls);
  1781. X    if (!ip->accept_store)
  1782. X        ip->accept_store = contool_store_accept_store_create(ip, ip->store_controls);
  1783. X    return ip;
  1784. X}
  1785. X
  1786. X/*
  1787. X * Create object `store' in the specified instance.
  1788. X
  1789. X */
  1790. XXv_opaque
  1791. Xcontool_store_store_create(ip, owner)
  1792. X    caddr_t        ip;
  1793. X    Xv_opaque    owner;
  1794. X{
  1795. X    Xv_opaque    obj;
  1796. X    
  1797. X    obj = xv_create(owner, FRAME_CMD,
  1798. X        XV_KEY_DATA, INSTANCE, ip,
  1799. X        XV_WIDTH, 444,
  1800. X        XV_HEIGHT, 146,
  1801. X        XV_LABEL, "Contool: Store Configuration",
  1802. X        XV_SHOW, FALSE,
  1803. X        FRAME_SHOW_FOOTER, FALSE,
  1804. X        FRAME_SHOW_RESIZE_CORNER, FALSE,
  1805. X        FRAME_CMD_PUSHPIN_IN, FALSE,
  1806. X        NULL);
  1807. X    xv_set(xv_get(obj, FRAME_CMD_PANEL), WIN_SHOW, FALSE, NULL);
  1808. X    return obj;
  1809. X}
  1810. X
  1811. X/*
  1812. X * Create object `store_controls' in the specified instance.
  1813. X
  1814. X */
  1815. XXv_opaque
  1816. Xcontool_store_store_controls_create(ip, owner)
  1817. X    caddr_t        ip;
  1818. X    Xv_opaque    owner;
  1819. X{
  1820. X    Xv_opaque    obj;
  1821. X    
  1822. X    obj = xv_create(owner, PANEL,
  1823. X        XV_KEY_DATA, INSTANCE, ip,
  1824. X        XV_HELP_DATA, "contool:store_controls",
  1825. X        XV_X, 0,
  1826. X        XV_Y, 0,
  1827. X        XV_WIDTH, WIN_EXTEND_TO_EDGE,
  1828. X        XV_HEIGHT, WIN_EXTEND_TO_EDGE,
  1829. X        WIN_BORDER, FALSE,
  1830. X        NULL);
  1831. X    return obj;
  1832. X}
  1833. X
  1834. X/*
  1835. X * Create object `store_type' in the specified instance.
  1836. X
  1837. X */
  1838. XXv_opaque
  1839. Xcontool_store_store_type_create(ip, owner)
  1840. X    caddr_t        ip;
  1841. X    Xv_opaque    owner;
  1842. X{
  1843. X    Xv_opaque    obj;
  1844. X    
  1845. X    obj = xv_create(owner, PANEL_TOGGLE,
  1846. X        XV_KEY_DATA, INSTANCE, ip,
  1847. X        XV_HELP_DATA, "contool:store_type",
  1848. X        XV_X, 102,
  1849. X        XV_Y, 14,
  1850. X        XV_WIDTH, 165,
  1851. X        XV_HEIGHT, 52,
  1852. X        PANEL_VALUE_X, 149,
  1853. X        PANEL_VALUE_Y, 14,
  1854. X        PANEL_LAYOUT, PANEL_HORIZONTAL,
  1855. X        PANEL_CHOICE_NCOLS, 1,
  1856. X        PANEL_LABEL_STRING, "Store:",
  1857. X        PANEL_CHOICE_STRINGS,
  1858. X            "Tool properties",
  1859. X            "Filter definitions",
  1860. X            0,
  1861. X        NULL);
  1862. X    return obj;
  1863. X}
  1864. X
  1865. X/*
  1866. X * Create object `store_file' in the specified instance.
  1867. X
  1868. X */
  1869. XXv_opaque
  1870. Xcontool_store_store_file_create(ip, owner)
  1871. X    caddr_t        ip;
  1872. X    Xv_opaque    owner;
  1873. X{
  1874. X    extern Panel_setting    file_completion();
  1875. X    Xv_opaque    obj;
  1876. X    
  1877. X    obj = xv_create(owner, PANEL_TEXT,
  1878. X        XV_KEY_DATA, INSTANCE, ip,
  1879. X        XV_HELP_DATA, "contool:store_file",
  1880. X        XV_X, 14,
  1881. X        XV_Y, 72,
  1882. X        XV_WIDTH, 415,
  1883. X        XV_HEIGHT, 15,
  1884. X        PANEL_LABEL_STRING, "Configuration file:",
  1885. X        PANEL_VALUE_X, 149,
  1886. X        PANEL_VALUE_Y, 72,
  1887. X        PANEL_LAYOUT, PANEL_HORIZONTAL,
  1888. X        PANEL_VALUE_DISPLAY_LENGTH, 35,
  1889. X        PANEL_VALUE_STORED_LENGTH, 256,
  1890. X        PANEL_READ_ONLY, FALSE,
  1891. X        PANEL_NOTIFY_PROC, file_completion,
  1892. X        NULL);
  1893. X    return obj;
  1894. X}
  1895. X
  1896. X/*
  1897. X * Create object `accept_store' in the specified instance.
  1898. X
  1899. X */
  1900. XXv_opaque
  1901. Xcontool_store_accept_store_create(ip, owner)
  1902. X    caddr_t        ip;
  1903. X    Xv_opaque    owner;
  1904. X{
  1905. X    extern void        store_filters();
  1906. X    Xv_opaque    obj;
  1907. X    
  1908. X    obj = xv_create(owner, PANEL_BUTTON,
  1909. X        XV_KEY_DATA, INSTANCE, ip,
  1910. X        XV_HELP_DATA, "contool:accept_store",
  1911. X        XV_X, 197,
  1912. X        XV_Y, 107,
  1913. X        XV_WIDTH, 49,
  1914. X        XV_HEIGHT, 20,
  1915. X        PANEL_LABEL_STRING, "Store",
  1916. X        PANEL_NOTIFY_PROC, store_filters,
  1917. X        NULL);
  1918. X    return obj;
  1919. X}
  1920. X
  1921. END_OF_FILE
  1922. if test 40450 -ne `wc -c <'contool_ui.c'`; then
  1923.     echo shar: \"'contool_ui.c'\" unpacked with wrong size!
  1924. fi
  1925. # end of 'contool_ui.c'
  1926. fi
  1927. echo shar: End of archive 6 \(of 6\).
  1928. cp /dev/null ark6isdone
  1929. MISSING=""
  1930. for I in 1 2 3 4 5 6 ; do
  1931.     if test ! -f ark${I}isdone ; then
  1932.     MISSING="${MISSING} ${I}"
  1933.     fi
  1934. done
  1935. if test "${MISSING}" = "" ; then
  1936.     echo You have unpacked all 6 archives.
  1937.     rm -f ark[1-9]isdone
  1938. else
  1939.     echo You still need to unpack the following archives:
  1940.     echo "        " ${MISSING}
  1941. fi
  1942. ##  End of shell archive.
  1943. exit 0
  1944.  
  1945. Chuck Musciano                ARPA  : chuck@trantor.harris-atd.com
  1946. Harris Corporation             Usenet: ...!uunet!x102a!trantor!chuck
  1947. PO Box 37, MS 3A/1912            AT&T  : (407) 727-6131
  1948. Melbourne, FL 32902            FAX   : (407) 729-2537
  1949.  
  1950. A good newspaper is never good enough,
  1951.     but a lousy newspaper is a joy forever.        -- Garrison Keillor
  1952.  
  1953. dan
  1954. ----------------------------------------------------
  1955. O'Reilly && Associates   argv@sun.com / argv@ora.com
  1956. Opinions expressed reflect those of the author only.
  1957.